package com.chinda.modules.sys.dto;

import com.chinda.common.enums.MenuTypeEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.Date;
import java.util.List;


/**
 * 菜单管理
 * 
 * @author chinda
 * @date 2021-06-16 05:52:51
 */
@Getter
@Setter
public class SysMenuDTO implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * 主键
	 */
	@ApiModelProperty(value = "主键")
	private Long menuId;
	/**
	 * 父菜单ID，一级菜单为0
	 */
	@NotBlank(message = "上级菜单不允许为空")
	@ApiModelProperty(value = "父菜单ID，一级菜单为0")
	private Long parentId;
	/**
	 * 菜单名称
	 */
	@NotBlank(message = "菜单名称不允许为空")
	@ApiModelProperty(value = "菜单名称")
	private String name;
	/**
	 * 菜单URL
	 */
	@ApiModelProperty(value = "菜单URL")
	private String url;
	/**
	 * 授权(多个用逗号分隔，如：user:list,user:create)
	 */
	@ApiModelProperty(value = "授权(多个用逗号分隔，如：user:list,user:create)")
	private String perms;
	/**
	 * 类型   0：目录   1：菜单   2：按钮
	 */
	@ApiModelProperty(value = "类型   0：目录   1：菜单   2：按钮")
	private MenuTypeEnum type;
	/**
	 * 菜单图标
	 */
	@ApiModelProperty(value = "菜单图标")
	private String icon;
	/**
	 * 排序
	 */
	@ApiModelProperty(value = "排序")
	private Integer sort;
	/**
	 * 创建人
	 */
	@ApiModelProperty(value = "创建人")
	private String createBy;
	/**
	 * 创建时间
	 */
	@ApiModelProperty(value = "创建时间")
	private Date createDate;
	/**
	 * 修改人
	 */
	@ApiModelProperty(value = "修改人")
	private String modifyBy;
	/**
	 * 修改时间
	 */
	@ApiModelProperty(value = "修改时间")
	private Date modifyDate;
	/**
	 * 版本号
	 */
	@ApiModelProperty(value = "版本号")
	private Integer version;
	/**
	 * 子节点
	 */
	private List<SysMenuDTO> children;
}
